import axios, { ResDataType } from "./ajax";
// 此处隐入的axios是ajax文件中的instance实例

type searchOption = {
  keyword: string;
  isStar: boolean;
  isDelete: boolean;
  pageIndex: number;
  pageSize: number;
};

// 获取单个问卷信息
export async function getQuestionService(id: string): Promise<ResDataType> {
  const url = `/api/question/${id}`;
  const data = (await axios.get(url)) as ResDataType;
  return data;
}

// 创建问卷
export async function createQuestionService(): Promise<ResDataType> {
  const url = "/api/question";
  const data = (await axios.post(url)) as ResDataType;
  return data;
}

// 获取/查询问卷列表
// opt : option 请求参数，可以在第二个参数中传入
// Partial： 类型的一部分，只要是规定的类型中的一部分就可以
export async function getQuestionListService(
  opt: Partial<searchOption> = {}
): Promise<ResDataType> {
  const url = "/api/question";
  // 如果没有传值的话默认为undefined， 不会拼接到rul地址中
  const data = (await axios.get(url, { params: opt })) as ResDataType;
  return data;
}

// 我的问卷：更新 星标信息
export async function updataIsStarOrDelt(
  id: string,
  opt: { [key: string]: any }
): Promise<ResDataType> {
  const url = `/api/question/${id}`;
  const data = (await axios.patch(url, opt)) as ResDataType;
  return data;
}

// 复制问卷
export async function copyQuestion(id: string): Promise<ResDataType> {
  const url = `/api/question/duplicate/${id}`;
  const data = (await axios.post(url)) as ResDataType;
  return data;
}

// 批量彻底删除
export async function completDelete(ids: string[]): Promise<ResDataType> {
  const url = `/api/question`;
  const data = (await axios.delete(url, { data :{ids} })) as ResDataType;
  return data;
}
